pragma circom 2.0.0;

include "circomlib/circuits/poseidon.circom";

/**
 * 校验电路：证明持有者知道能生成链上公开的 dataHash
 * 公共输入：
 *   - dataHash: 链上存储的资产哈希
 * 私有输入：
 *   - preImage: 私有原始数据（或秘密）
 */
template VerifyAssetCircuit() {
    // 私有输入
    signal input preImage;
    // 公共输入 - 重命名为pubSignals以与合约保持一致
    signal input dataHash;

    // Poseidon 哈希 preImage
    component hasher = Poseidon(1);
    hasher.inputs[0] <== preImage;

    // 生成的哈希必须和 dataHash 一致
    hasher.out === dataHash;
}

// 明确指定dataHash为公共输入
component main {public [dataHash]} = VerifyAssetCircuit();
